﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using BE;
using BLL;
using VentaPorCatalogos.UserControls;
using BE.SearchCriteria;
using VentaPorCatalogos.Common;
using Common;
using BLL.Exceptions;

namespace VentaPorCatalogos.Pages
{
    public partial class CierreDeCampañas : VentaPorCatalogos.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                Session["SearchCriteria"] = null;
            }
        }

        #region "Buttons"
        protected void btnSelCampaña_Click(object sender, ImageClickEventArgs e)
        {
            int wCount = 0;

            if (txtCampaña.Text.Trim().Length > 0)
            {
                CampañaSC wFiltroSC = new CampañaSC();
                wFiltroSC.Descripcion = txtCampaña.Text;
                List<CampañaBE> wListResultado = CampañaBLL.SeleccionarPorParametros(wFiltroSC, 0, null, ref wCount);
                if (wListResultado != null && wListResultado.Count > 0)
                {
                    if (wListResultado.Count == 1)
                    {
                        hidIdCampaña.Value = wListResultado[0].IdCampaña.ToString();
                        txtCampaña.Text = wListResultado[0].Descripcion;
                        MostrarCampaña();
                    }
                    else
                        EjecutarScript(string.Format("SeleccionarCampaña(\"{0}\");", txtCampaña.Text));
                }
                else
                {
                    txtCampaña.Text = string.Empty;
                    EjecutarScript("alert(\"Sin resultados para el filtro especificado.\");");
                }
            }
            else
            {
                EjecutarScript(string.Format("SeleccionarCampaña(\"{0}\");", txtCampaña.Text));
            }
        }

        private void MostrarCampaña()
        {
            if (string.IsNullOrEmpty(hidIdCampaña.Value))
                return;
            CampañaBE oCampañaBE = new CampañaBE();
            oCampañaBE.IdCampaña = int.Parse(hidIdCampaña.Value);
            oCampañaBE = CampañaBLL.SeleccionarPorId(oCampañaBE);
            //Mostrar estado
            txtEstado.Text = oCampañaBE.Cerrado ? "Cerrada" : "Sin Cerrar";
            SetModel<CampañaBE>(oCampañaBE);
        }


        protected string GetButtonPostBack()
        {
            return Page.ClientScript.GetPostBackEventReference(btnConsultar, string.Empty);
        }

        protected void btnCierre_Click(object sender, EventArgs e)
        {
            try
            {
                // actualizar id pedido y devoluciones a cerrado  ((solamane las autorizadas)) 
                if (GetModel<CampañaBE>() != null)
                {                    
                    CampañaBE oCampaña = GetModel<CampañaBE>();
                    CampañaBLL.Cerrar(oCampaña);
                    MostrarCampaña();
                    MostrarMensaje("Campaña cerrada exitosamente");
                }
            }
            catch (BLLException bllEx)
            {
                MostrarMensaje(bllEx.Message);
            }
            catch (Exception)
            {
                throw;
            }
        }
        #endregion

        protected void btnConsultar_Click(object sender, EventArgs e)
        {
            MostrarCampaña();
        }
    }
}